package com.hmk.blogboot.service;

import com.hmk.blogboot.po.Blog;
import com.hmk.blogboot.vo.BlogQuery;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/*blog管理业务接口类*/
public interface BlogService {
    /*
    * 根据id进行获取blog
    * @param id 表示博客的id
    * return  Blog
    * */
    Blog getBlog(Long id);
    /*分页查询*/
    Page<Blog>  listBlog(Pageable pageable, BlogQuery blog);
    /*保存blog 返回保存后的blog*/
    Blog saveBlog(Blog blog);
    //根据id进行删除blog
    void deleteBlog(Long id);
    //修改blog
    Blog updateBlog(Long id, Blog blog);
    //只展示blog数据
    Page<Blog> listBlog(Pageable pageable);
    //首页展示最新评论
    List<Blog> listRecommendBlogTop(Integer size);

    //根据输入的内容或标题，进行模糊匹配查询
    Page<Blog> listBlog(String query,Pageable pageable);

    //根据id 获取blog  同时浏览次数+1
    Blog getAndConvert(Long id);

    //进行b'log 和 tag表进行关联查询
    Page<Blog> listBlog(Long tagId,Pageable pageable);
    //从数据库t_blog表中按照年份归档 展示在归档页面上
    Map<String,List<Blog>>  archiveBlog();
    //获取blog的条数
    Long countBlog();

}
